package com.example.demo.dto.Admin;

import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

@Data
public class AdminSelfUpdateDto {

    @Size(min = 1, max = 255, message = "新账号长度必须在1到255个字符之间")
    @Pattern(regexp = "^[a-zA-Z0-9_@.-]+$", message = "新账号只能包含字母、数字和特殊字符(@._-)")
    private String newAccount; // 如果不提供或为空，则不修改账号

    @Size(max = 50, message = "用户名长度不能超过50个字符")
    private String username;   // 如果不提供，则不修改用户名；如果提供空字符串，则清空用户名或设为默认

    @Size(min = 6, max = 100, message = "新密码长度必须在6到100个字符之间")
    private String newPassword; // 如果不提供或为空，则不修改密码

    // 注意：为了安全，修改密码或账号时，通常会要求输入当前密码进行验证。
    // 但根据题目“只能修改自己的”，并且已经通过Token认证，这里简化处理，不强制要求旧密码。
    // 如果需要，可以添加 private String currentPassword; 字段。
}
